package com.zxl.designpattern.behavioral.interpreter;

/**
 * 乘法表达式类（非终结符表达式）
 * 表示两个表达式相乘，实现了Expression接口
 */
public class MultiplyExpression implements IExpression {
    private IExpression leftExpression;   // 左表达式
    private IExpression rightExpression;  // 右表达式
    
    /**
     * 构造函数，初始化左右表达式
     * @param left 左表达式
     * @param right 右表达式
     */
    public MultiplyExpression(IExpression left, IExpression right) {
        this.leftExpression = left;
        this.rightExpression = right;
    }
    
    @Override
    public int interpret(Context context) {
        return leftExpression.interpret(context) * rightExpression.interpret(context);
    }
}    